正規表現 – Dart逆引きリファレンス
正規表現(Regular expressions)
標準的な正規表現利用の流れは下記のようになります。
- 「RegExp」オブジェクトを生成する。
- 「RegExp」オブジェクトの持つマッチメソッドを利用して「Match」オブジェクトを取得する。
- 「Match」オブジェクトから合致した文字列を取得する。
正規表現で最初の合致文字列を調べたい
「RegExp」オブジェクトが持つ「firstMatch」メソッドを利用します。
var email = 'test@example.com'; Match match = new RegExp(@'@').firstMatch(email); print(match.group(0));
@
正規表現で全ての合致文字列を調べたい
「RegExp」オブジェクトが持つ「allMatches」メソッドを利用します。
var invalidEmail = 'f@il@example.com'; Iterable<Match> matches = new RegExp(@'@').allMatches(invalidEmail); for (Match m in matches) { print(m.group(0)); }
@ @
パターングループを利用して文字列を抽出したい
「Match」オブジェクトが持つ任意のグループを参照します。
var email = 'test@example.com'; RegExp exp = new RegExp(@'^(.+)@(.+)$'); match = exp.firstMatch(email); print(match.groupCount()); print(match.group(1)); print(match.group(2));
2 test example.com
上述の例は以下のようにも記述できます。
var email = 'test@example.com'; RegExp exp = new RegExp(@'^(.+)@(.+)$'); match = exp.firstMatch(email); print(match.groupCount()); List<String> groups = match.groups([1, 2]); groups.forEach(print);